//User constructor function
function User(name, interests) {
    this.name = name;
    this.interests = interests;
}

//
User.prototype.greeting = function() {
    console.log('Hi, I\'m ' + this.name + '.');
}

/*
上面创建了一个用户构造函数。其实是使用Function构造函数创建一个函数对象。
在JavaScript中，可以使用对象的构造函数(constructor)属性来检查谁创建了对象，
该属性引用回其创建者，如下所示：
*/
console.log(User.constructor === Function);    //true


/*
一旦创建了User构造函数，它就有一个prototype。
并且User的prototype由User构造函数创建，如下所示：
*/
console.log(User.prototype.constructor === User);    //true


/*
在JavaScript中，使用User构造函数创建user对象后，该对象(user)将具有引用
User原型对象的__proto__属性。可以看到如下所示：
此__proto__参考用作原型链中的一环
*/
var user = new User();
console.log(user.__proto__ === User.prototype)